/**
 * 创建人:  @author huangpeng    
 * 创建时间:  2022年09月12日 19:33
 * 项目名称:  lemon-blog-cloud
 * 文件名称:  SystemFeignClientHystrix
 * 文件描述:  @Description: 主系统服务调用异常处理
 * 公司名称:  柠檬
 *
 * All rights Reserved, Designed By 柠檬 
 * @Copyright: 2022-2022
 *
 */
package com.lemon.blog.system.service.feign.Hystrix;

import com.lemon.blog.system.service.feign.SystemFeignClient;
import com.lemon.common.core.web.domain.AjaxResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;

/**
 * 包名称：com.lemon.blog.service.feign.Hystrix
 * 类名称：SystemFeignClientHystrix
 * 类描述：主系统服务调用异常处理
 * 创建人：@author huangpeng
 * 创建时间：2022年09月12日 19:33
 */
@Component("SystemFeignClientHystrix")
public class SystemFeignClientHystrix implements FallbackFactory<SystemFeignClient> {

    public static final Logger logger = LoggerFactory.getLogger(SystemFeignClientHystrix.class);

    public static final String errorMsg = "服务不存在或网络已断开，错误原因：{}";

    @Override
    public SystemFeignClient create(Throwable cause) {
        return new SystemFeignClient() {

            @Override
            public AjaxResult queryUserListByKey(String userIds) {
                logger.error(errorMsg, cause.getMessage());
                return AjaxResult.error(errorMsg.replace("{}", cause.getMessage()));
            }

            @Override
            public AjaxResult queryBaseUserListByKey(String userIds) {
                logger.error(errorMsg, cause.getMessage());
                return AjaxResult.error(errorMsg.replace("{}", cause.getMessage()));
            }

        };
    }
}
